package com.itheima.demo09;

public class MainClass {
    public static void main(String[] args) {

        //通过创建接口实现对象，通过对象调用重写方法
        CalImpl cal = new CalImpl();
        int result = cal.calc(5, 6);
        System.out.println(result);

        //使用匿名内部类，调用方法传入实参
        useCalculate(new Calculate() {
            @Override
            public int calc(int a, int b) {
                return a * b + a;
            }
        },10, 15);

        //用Lambda表达式调用方法，传入接口对象及重写方法实参
        useCalculate((a, b) -> a * b, 10, 20);
    }

    //创建一个调用接口方法，并传入接口对象方法的形式参数
    public static void useCalculate(Calculate calculate, int a, int b) {
        int num = calculate.calc(a, b);
        System.out.println("num =" + num);
    }
}

//接口
interface Calculate {
    int calc(int a, int b);
}

//接口的实现类
class CalImpl implements Calculate{
    //重写接口方法
    @Override
    public int calc(int a, int b) {
        return a + b;
    }
}
